package com.ruoyi.electronicFence.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 电子围栏报警信息对象 t_ef_alarm
 *
 * @author sxygsj
 * @date 2024-05-20
 */
@Data
public class TEfAlarm extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 主键数组 */
    private List<Long> ids;

    /** 单位编号 */
    @Excel(name = "单位编号")
    private String unitCode;

    /** 场景类型 */
    @Excel(name = "场景类型")
    private String placeType;
    /** 报警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime alarmTime;

    /** 报警地点 */
    @Excel(name = "报警地点")
    private String alarmArea;

    /** 设备：被检测的设备 */
    @Excel(name = "设备：被检测的设备")
    private String alarmDevice;

    /** 报警类型名称 (0:预警 1:停机) */
    @Excel(name = "报警类型名称 (0:预警 1:停机)")
    private String alarmType;

    /** 监测设备类型 */
    @Excel(name = "监测设备类型")
    private String monitorDeviceType;

    /** 监测设备id */
    @Excel(name = "监测设备id")
    private String monitorDeviceId;

    /** 监测设备名称 */
    @Excel(name = "监测设备名称")
    private String monitorDeviceName;

    /** 报警级别 (5:紧急 4:严重 3:警告 2:次要 1:提示) */
    @Excel(name = "报警级别 (5:紧急 4:严重 3:警告 2:次要 1:提示)")
    private String alarmLevel;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approve;

    /** 审批意见 (1-正报 2-误报) */
    @Excel(name = "审批意见 (1-正报 2-误报)")
    private String opinion;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 报警图片URL */
    @Excel(name = "报警图片URL")
    private String pictureUrl;

    /** 处理状态 (1-未处理 2-处理中 3-已处理) */
    @Excel(name = "处理状态 (1-未处理 2-处理中 3-已处理)")
    private String handleStatus;

    /** 处理状态 (1-未处理 2-处理中 3-已处理) */
    @Excel(name = "处理状态 (1-未处理 2-处理中 3-已处理)")
    private String alarmDisposalInfo;

    /** 是否报备 (0-未报备 1-已报备) */
    @Excel(name = "是否报备 (0-未报备 1-已报备)")
    private String filter;

    /** 数据插入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "数据插入时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime insertTime;

    /** 报警值 */
    private BigDecimal alarmValue;

    /** 最大人员数 */
    private Integer maxNumbersOfPerson;

    /** 最小人员数 */
    private Integer minNumbersOfPerson;

    /** 控制器Id */
    @Excel(name = "控制器Id")
    private String controllerId;

    /** 控制器名称 */
    @Excel(name = "控制器名称")
    private String controllerName;

    /** 报警json数据 */
    private JSON alarmCardIdList;

    /** 停机json数据 */
    private JSON shutdownCardIdList;

    /** 人员Id */
    private String personSubId;

    /** 人员信息 */
    private List<TEfAlarmPerson> tEfAlarmPerson;

    /** 报警人员信息 */
    private List<TEfAlarmPerson> tEfAlarmPerson0;

    /** 停机人员信息 */
    private List<TEfAlarmPerson> tEfAlarmPerson1;

    /** 开始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /** 结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    /** 状态持续时间 秒数 */
    @Excel(name = "状态持续时间 秒数")
    private Integer durationSeconds;

    /** 状态持续时间 */
    @Excel(name = "状态持续时间")
    private String durationSecondsStr;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "状态变更开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statusStartDatetime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "状态变更结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statusEndDatetime;

    /** 图片数组str */
    @Excel(name = "图片数组str")
    private String pictureUrls;

    /** 图片数组 */
    @Excel(name = "图片数组")
    private List<String> pictureUrlList;


    /** 通道名称 */
    @Excel(name = "通道名称")
    private String apeName;

    /** 通道ID */
    @Excel(name = "通道ID")
    private Integer apeId;

    /** 删除标志 */
    private Integer delFlag;


}
